from flask import Flask, url_for
from flask import render_template
from flask import jsonify
from flask import request
from werkzeug.utils import secure_filename
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello World'



@app.route('/user/<name>')
def username(name):
    #通过数据库查询
    #通过数据库修改
    #其他业务操作
    #修改相关信息，并且反馈到前台
    if(name == "张三"):
        name = "真是张三"
    else:
        name = "不是张三，二是" + name

    return '<h1>hello,%s</h1>' % name


@app.route('/user')
def user():
    users = [['张三','男','重庆'],
            ['李四','女', '河南']
    ]
    return render_template("user.html",list=users)


@app.route('/url/')
def redirect_to_url():
    return url_for('post_show',post_id = 666)


@app.route('/post/<int:post_id>')
def post_show(post_id):
    return 'Post ID : %d' % post_id

#写接口给前端，AI服务实现 4
@app.route('/getJson')
def getJson():
    data = {
        "name" : "张三",
        "sex"  : "男" ,
        "age": "20",
        "address" : "xxxxxx"
    }
    return jsonify(data)


#Get传参
@app.route('/login',methods=['GET','POST'])
def login():
    if request.method == 'GET':
        print("当前请求方法是GET")
        username = request.args.get("username")
        address = request.values.get("address")


        data = {
            "username" : username,
            "address" : address
        }

        print(data)
        return jsonify(data)


    # Post传参
    elif request.method == 'POST':
        print("当前请求方法是POST")
        username = request.args.get("username")
        address = request.values.get("address")

        data = {
            "username": username,
            "address": address
        }

        print(data)
        return jsonify(data)

#传递json
@app.route('/passJson',methods=['POST'])
def passJson():
    data = json.loads(request.get_data(as_text = True))

    #写业务程序
    return jsonify(data)







#上传文件
#步骤一，创建路由，创建一个静态文件的路由
@app.route('/upload/index')
def toUploadPage():
    return render_template('upload.html')


#步骤二：静态文件中有文件上传功能，点击该功能，上传文件
@app.route('/upload', methods=['POST'])
def upload():
    if request.method == 'POST':
        file = request.files['file']
        print(request.files)


        file.save(secure_filename(file.filename))

        #可以做其他的业务，例如人脸识别等
        return "文件上传成功！"
    else:
        return render_template('upload.html')



if __name__ == '__main__':
    app.debug = True
    app.run()






